Limitations and advantages of using IOC container for dependency injection